/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.test.container.archive.registerrestservice; import java.util.ArrayList; import java.util.List; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @Path("/PersonList") public class PersonList { private List<Person> entryList = new ArrayList<Person>(); @GET() @Path("/ping") @Produces(MediaType.TEXT_PLAIN) public String ping() { System.out.println("### Calling ping"); return "pong"; } @GET() @Path("/securedPing") @Produces(MediaType.TEXT_PLAIN) public String securedPing() { System.out.println("### Calling securedPing"); return "securedPong"; } /* * http://localhost:8080/register-rest-1.0/PersonList/onList?name=Marek& * middlename=-&surname=Baluch */ @GET() @Produces(MediaType.APPLICATION_JSON) @Path("/onList") public Person onList(@QueryParam("name") String name, @QueryParam("middlename") String middlename, @QueryParam("surname") String surname) { Person wanted = new Person(name, middlename, surname); System.out.println("### Calling - onList '" + wanted + "'"); for (Person suspect : entryList) { if (suspect.equals(wanted)) { System.out.println("\tReturning - result '" + suspect + "'"); return suspect; } } System.out.println("\tReturning - result 'null'"); return null; } /* * http://localhost:8080/register-rest-1.0/PersonList/delete?name=Don&middlename * =Non&surname=Existent */ @DELETE @Produces(MediaType.TEXT_PLAIN) @Path("/delete") public String delete(@QueryParam("name") String name, @QueryParam("middlename") String middlename, @QueryParam("surname") String surname) { Person wanted = onList(name, middlename, surname); if (entryList.contains(wanted)) { System.out.println("\tDeleting - result '" + wanted + "'"); entryList.remove(wanted); return "Ok"; } else { System.out.println("\tNo - result '" + wanted + "'"); return "Fail"; } } /* * Invalid Request { "Person": { "name": "Marek", "middlename": "-", * "surname": "Baluch" } } * * Valid Request { "name": "Marek", "middlename": "-", "surname": "Baluch" } */ @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) @Path("/add") public String add(final Person person) { System.out.println("### Calling - add '" + person + "'"); if (entryList.contains(person)) { System.out.println("\tSkipping - result '" + person + "'"); return "Already in list!"; } System.out.println("\tAdding - result '" + person + "'"); entryList.add(person); return "Ok"; } }